1. Technical Field
This invention generally relates to computer systems, and more specifically relates to detecting the use of stale data values due to weak consistency between parallel threads of a parallel application on the computer system.
2. Background Art
Many computer systems use parallel processors and parallel programming to increase the performance of the computer system. In parallel programming there are multiple threads of a computer program executing simultaneously on multiple processors. An important concern of parallel programming is the consistency of data being used by these parallel threads of the parallel program. Strong consistency is where parallel threads can observe only one consistent state of the memory. In a weak consistency system, accesses to non-synchronized data may be seen in a different order by different threads, nodes or processors. This leads to a common problem with parallel programming where accessing values in a different order can create consistency errors from using stale data due to weak consistency. Approaches to keep the systems strongly consistent have a large negative impact on system performance, so weakly consistent architectures are often used.